package wawi.actions;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;

import wawi.db.DbConnector;
import wawi.util.Laden;
import wawi.util.Props;

import com.opensymphony.xwork2.ActionSupport;

public class VerkaufListe extends ActionSupport
{
	private ArrayList<ArrayList<String>> aaData = new ArrayList<ArrayList<String>>();

	public ArrayList<ArrayList<String>> getAaData() {
		return aaData;
	}

	public void setAaData(ArrayList<ArrayList<String>> aaData) {
		this.aaData = aaData;
	}
	
	public String execute()
	{
		boolean showAbgeschlossenOnly = Props.isBool("show.verkauf.abgeschlossen.only", false);
		
		List<Verkauf> list = DbConnector.getInstance().getVerkaufList();
		DecimalFormat df = new DecimalFormat("0.00");	
		
		for (Verkauf tmp : list)
		{			
			
			ArrayList<String> row = new ArrayList<String>();
			row.add(tmp.getRgNum());
			row.add(tmp.getDatum().toString());
			row.add(Laden.getName(tmp.getLaden()));
			row.add(getVerkaufStatus(tmp));
			row.add(df.format(tmp.getPreis()) + " EUR");
			row.add(String.format("<a href=\"Verkauf_anzeige.action?recid=%d\">Details</a>", tmp.getRecid()));
			
			if (tmp.getStatus()==Verkauf.STATUS_ABGESCHLOSSEN || showAbgeschlossenOnly==false)
				aaData.add(row);			
		}
		
		return ActionSupport.SUCCESS;
	}
	
	
	private String getVerkaufStatus(Verkauf v)
	{
		String ret;
		
		switch (v.getStatus())
		{
		case Verkauf.STATUS_BEARBEITUNG:
			ret = "In Bearbeitung";
			break;
			
		case Verkauf.STATUS_BEZAHLUNG:
			ret = "Bezahlung";
			break;
			
		case Verkauf.STATUS_ABGESCHLOSSEN:
			ret = "Abgeschlossen";
			break;
			
		case Verkauf.STATUS_FEHLER:
			ret = "Fehlerhaft";
			break;
			
		default:
			ret = "???";
			break;
		}
		
		
		return ret;
	}
}
